perm filename PTEST.DOC[TEX,ALS] blob
sn#613092 filedate 1981-09-22 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 {{\def\dispentry#1#2{{}
C00004 00003 program YIELD(OUTPUT)
C00005 00004 procedure PrintOctal(n: integer) {{ Prints the rightmost 32 bits }}
C00008 ENDMK
C⊗;
{{\def\dispentry#1#2{{}
\spaceskip 3.333pt plus 10pt minus 2pt
\xspaceskip 4.444pt plus 11pt minus 3pt
\parindent 0pt
$$\hbox par 11cm{\hangindent 3cm after 1\hbox to 3cm{#1\hfil\quad}#2}
$$
\parindent 20pt
}
\def\dispar#1\par{{}
\spaceskip 3.333pt plus 10pt minus 2pt
\xspaceskip 4.444pt plus 11pt minus 3pt
\parindent 0pt
$$\hbox par 10cm{#1}
$$\par
\parindent 20pt
}
\def\hide#1{\hbox to 0pt{\hss#1}}
\def\α{\hide{-}\ }
\def\β{\hide{$\bullet$}\ }
\def\runningrighthead#1{\gdef\chead{\:m#1}} %\runningrighthead sets chead
\def\textindent#1{\noindent\hbox to 30pt{\hss#1\ }\!}
\def\¬{\par\penalty-100\vskip 5pt plus 2pt minus 2pt
\hangindent 30pt\textindent{$\bullet$}}
\advcount0
\secbegin \head{The PrintOctal program} \runninglefthead{PrintOctal}
PrintOctal is a test program to make sure that the new PrintOctal procedure
actually works as advertized.\par
(* PrintOctal STANFORD CS September 16 1981.
PrintOctal was programmed by A.L.Samuel *)}}
program YIELD(OUTPUT);
var BRACKET,YIELD: integer;
begin
writeln('Break even Bracket in terms of current yield');
writeln('current Tax');
writeln('yield bracket');
for YIELD:=13 to 30 do
begin BRACKET :=100 -(1260 div YIELD);
if BRACKET <= 50 then writeln(YIELD:3,BRACKET:9);
end;
end.
procedure PrintOctal(n: integer); {{ Prints the rightmost 32 bits }}
var i: integer;
k: integer;
s: array [0..10] of asciiCode;
msb: boolean;
mbb: boolean;
begin
msb:=false;
mbb:=false;
if n<0 then begin n:=-n; msb:=true end;
for k:=10 downto 0 do
begin
i:=n mod 8;
if k=0 then
begin
if msb then
begin
if i>3 then i:=7-i {{ must be a 36 bit word }}
else
begin
if (i mod 2)=0 then i:=3 else i:=2 {{ should be ok }}
end
end
else i:=(i mod 4)
end
else
begin
if msb=true then
begin
if mbb=true then i:= 7-i {{ a borrow has propagated }}
else
begin
if i>0 then
begin
i:=8-i;
mbb:=true; {{ a borrow required }}
end
end
end;
end;
case i of
0: s[k]:=zero;
1: s[k]:=one;
2: s[k]:=two;
3: s[k]:=three;
4: s[k]:=four;
5: s[k]:=five;
6: s[k]:=six;
7: s[k]:=seven
end;
n:= n div 8;
end;
Print(''''');
k:=0; while (k<10) and (s[k]=zero) do Increment(k);
for k:=k to 10 do Print(s[k])
end;
{{\head{Maincontrol}\par
Computes FIB numbers and their squares and calls Printoctal }}
procedure maincontrol; {{ Computes FIB numbers and their squares and
calls Printint and PrintOctal. }}
var fiba: integer;
fibb: integer;
fibc: integer;
fibs: integer;
k: integer;
begin
fiba:=0;
fibb:=1;
for k:=1 to 100 do
begin
fibc:=fiba+fibb;
fibs:=fibc*fibc;
println('' '');
printint(fibs);
println('' '');
printoctal(fibs);
println('' '');
fibs:=-fibs;
printoctal(fibs);
fiba:=fibb;
fibb:=fibc;
end;
end;
begin
maincontrol;
end.